package com.xbongbong.saas.service;

import com.xbongbong.paas.toolbox.exception.XbbException;
import com.xbongbong.pro.domain.entity.LabelGroupEntity;
import com.xbongbong.pro.label.pojo.dto.LabelGroupDeleteDTO;
import com.xbongbong.pro.label.pojo.dto.LabelGroupListDTO;
import com.xbongbong.pro.label.pojo.dto.LabelGroupRepeatDTO;
import com.xbongbong.pro.label.pojo.dto.LabelGroupSaveDTO;
import com.xbongbong.pro.label.pojo.dto.LabelGroupSortDTO;
import com.xbongbong.pro.label.pojo.vo.LabelGroupDeleteVO;
import com.xbongbong.pro.label.pojo.vo.LabelGroupListVO;
import com.xbongbong.pro.label.pojo.vo.LabelGroupRepeatVO;
import com.xbongbong.pro.label.pojo.vo.LabelGroupSaveVO;
import com.xbongbong.pro.label.pojo.vo.LabelGroupSortVO;

/**
 * @author guohui.zhang
 * @Title:
 * @date 2020/11/39:52
 */
public interface LabelGroupService {
    /**
     * 获取分组列表
     * @param labelGroupListDTO
     * @return
     * @throws XbbException
     */
    LabelGroupListVO getGroupList(LabelGroupListDTO labelGroupListDTO) throws XbbException;





    /**
     * 标签分组保存
     * @param labelGroupSaveDTO
     * @return
     * @throws XbbException
     */
    LabelGroupSaveVO saveLabelGroup(LabelGroupSaveDTO labelGroupSaveDTO) throws XbbException;

    /**
     * 分组删除
     * @param labelGroupDeleteDTO
     * @return
     * @throws XbbException
     */
    LabelGroupDeleteVO deleteLabelGroup(LabelGroupDeleteDTO labelGroupDeleteDTO) throws XbbException;

    /**
     * 分组排序
     * @param labelGroupSortDTO
     * @return
     * @throws XbbException
     */
    LabelGroupSortVO sortLabelGroup(LabelGroupSortDTO labelGroupSortDTO) throws XbbException;

    LabelGroupRepeatVO repeatGroup(LabelGroupRepeatDTO labelGroupRepeatDTO) throws XbbException;


    /**
     * 创建默认标签分组
     * @param userId
     * @param corpid
     * @param appId
     * @param formId
     * @return
     * @throws XbbException
     */
    LabelGroupEntity createDefaultLabelGroup(String userId, String corpid, Long appId, Long formId) throws XbbException;


}
